/* ---------------------------------------- *\
 * FREDDY FROG - AND THE DOWNSTREAM VOYAGE  *
 *   Hochschule Emden Leer - WS 2011/12     *
 *                  ***                     *
 *     Viktor Grass   (Programmierung)      * 
 *     Michael Sürken (Programmierung)      *
 *     Rainer Geiger  (Programmierung)      *
\* ---------------------------------------- */
package freddyfrog;

import org.newdawn.slick.*;
import org.newdawn.slick.geom.*;                // für das Shape

public class Frog extends GameObject {		// Froschklasse 

    private Input input;			// Variable fuer den Input
    private float rotation;			// Variable fuer Rotation
    private Shape collisionArea;                // Variable für eine Kollisionsform

    public Frog(Image image, Input input) {	// Konstruktor der ein Bild entgegennimmt + eine Benutzeingabe(hier Maus)
        super(image);                           // Bild an GameObject
        this.input = input;                     // uebergebener Wert des Inputs wird in Variable input geschrieben
        collisionArea = new Ellipse(x, y, 10, 10);  // Kollisionsform ist eine Ellipse an der Position des Frosches
    }

    @Override
    public void update(int delta) {		// update von GameObject ueberschreiben
        rotation = (float) Math.toDegrees(Math.atan2(x - input.getMouseX() + 16, y - input.getMouseY() + 16) * -1);
        if (rotation < -90) {                   // Frosch guckt maximal zur linken Seite, nicht nach unten
            rotation = -90;
        }
        if (rotation > 90) {                    // Frosch guckt maximal zur rechten Seite, nicht nach unten
            rotation = 90;
        }

        image.setRotation(rotation);            // Freddy guckt zum Mauszeiger 
        collisionArea.setCenterX(x);            // Koordinaten der Kollisionsform werden angepasst
        collisionArea.setCenterY(y);
    }

    @Override
    public void draw(Graphics g) {          // draw Methode zum Zeichnen des Objektes
        image.drawCentered(x, y);           // um die Koordinaten gezeichnet
    }
}